package hot.arr;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class A56 {

    public int[][] merge(int[][] intervals) {

        // 先使二维数组有序
        Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
        int length = intervals.length;
        List<int[]> res = new ArrayList<>();
        int m=0;
        //双指针遍历，下一个区间和自己无交集，将自己放入结果集，指针指向下一个区间，和自己有区间，计算出新区间
int i=intervals[0][0];
int j=intervals[0][1];
for(int k=1;k<length;k++){
    //没有交集
    if(intervals[k][0]>j){
    res.add(new int[]{i,j});
        i=intervals[k][0];
        j=intervals[k][1];
        m++;
        continue;
    }
    else if(intervals[k][0]<=j){
        j=Math.max(j,intervals[k][1]);
    }
}
        res.add(new int[]{i,j});
return res.toArray(new int[m][2]);
    }
}
